From 3947efa1c2fdeb73561ec42e01c7a9d6cd6e51f2 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Mon, 14 Nov 2005 11:35:50 +0100 Subject: [PATCH] Revert accidentally applied changes from changeset 7783:5aad7e145e501fbfb346954950a33b042a963633. Signed-off-by: Keir Fraser --- .../drivers/xen/console/xencons_ring.c | 16 +++------------- .../drivers/xen/xenbus/xenbus_comms.c | 7 +++++-- tools/libxc/xc_linux_build.c | 4 +--- tools/libxc/xc_linux_restore.c | 2 ++ tools/libxc/xc_private.c | 13 ------------- tools/libxc/xc_vmx_build.c | 3 --- tools/libxc/xenctrl.h | 3 --- 7 files changed, 11 insertions(+), 37 deletions(-) diff --git a/linux-2.6-xen-sparse/drivers/xen/console/xencons_ring.c b/linux-2.6-xen-sparse/drivers/xen/console/xencons_ring.c index 2d6eb044b6..ccbcf5e7db 100644 --- a/linux-2.6-xen-sparse/drivers/xen/console/xencons_ring.c +++ b/linux-2.6-xen-sparse/drivers/xen/console/xencons_ring.c @@ -30,12 +30,6 @@ static inline struct xencons_interface *xencons_interface(void) return mfn_to_virt(xen_start_info->console_mfn); } -static inline void notify_daemon(void) -{ - /* Use evtchn: this is called early, before irq is set up. */ - notify_remote_via_evtchn(xen_start_info->console_evtchn); -} - int xencons_ring_send(const char *data, unsigned len) { int sent = 0; @@ -53,7 +47,8 @@ int xencons_ring_send(const char *data, unsigned len) wmb(); intf->out_prod = prod; - notify_daemon(); + /* Use evtchn: this is called early, before irq is set up. */ + notify_remote_via_evtchn(xen_start_info->console_evtchn); return sent; } @@ -75,11 +70,9 @@ static irqreturn_t handle_input(int irq, void *unused, struct pt_regs *regs) 1, regs); } - mb(); + wmb(); intf->in_cons = cons; - notify_daemon(); - return IRQ_HANDLED; } @@ -109,9 +102,6 @@ int xencons_ring_init(void) xencons_irq = err; - /* In case we have in-flight data after save/restore... */ - notify_daemon(); - return 0; } diff --git a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c index 82f656d462..9e301a620f 100644 --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c @@ -36,7 +36,7 @@ #include #include "xenbus_comms.h" -static int xenbus_irq; +static int xenbus_irq = 0; extern void xenbus_probe(void *); extern int xenstored_ready; @@ -51,7 +51,7 @@ static inline struct xenstore_domain_interface *xenstore_domain_interface(void) static irqreturn_t wake_waiting(int irq, void *unused, struct pt_regs *regs) { - if (unlikely(xenstored_ready == 0)) { + if(unlikely(xenstored_ready == 0)) { xenstored_ready = 1; schedule_work(&probe_work); } @@ -189,6 +189,9 @@ int xb_init_comms(void) xenbus_irq = err; + /* FIXME zero out page -- domain builder should probably do this*/ + memset(mfn_to_virt(xen_start_info->store_mfn), 0, PAGE_SIZE); + return 0; } diff --git a/tools/libxc/xc_linux_build.c b/tools/libxc/xc_linux_build.c index fc6fc9d904..ff3ecf84f6 100644 --- a/tools/libxc/xc_linux_build.c +++ b/tools/libxc/xc_linux_build.c @@ -619,9 +619,7 @@ static int setup_guest(int xc_handle, *store_mfn = page_array[(vstoreinfo_start-dsi.v_start) >> PAGE_SHIFT]; *console_mfn = page_array[(vconsole_start-dsi.v_start) >> PAGE_SHIFT]; - if ( xc_clear_domain_page(xc_handle, dom, *store_mfn) || - xc_clear_domain_page(xc_handle, dom, *console_mfn) ) - goto error_out; + start_info = xc_map_foreign_range( xc_handle, dom, PAGE_SIZE, PROT_READ|PROT_WRITE, diff --git a/tools/libxc/xc_linux_restore.c b/tools/libxc/xc_linux_restore.c index 198628ab97..9abd19a5c2 100644 --- a/tools/libxc/xc_linux_restore.c +++ b/tools/libxc/xc_linux_restore.c @@ -12,6 +12,8 @@ #include "xg_private.h" #include "xg_save_restore.h" + + /* max mfn of the whole machine */ static uint32_t max_mfn; diff --git a/tools/libxc/xc_private.c b/tools/libxc/xc_private.c index e5a9c566d5..75e179a7c7 100644 --- a/tools/libxc/xc_private.c +++ b/tools/libxc/xc_private.c @@ -336,19 +336,6 @@ int xc_copy_to_domain_page(int xc_handle, return 0; } -int xc_clear_domain_page(int xc_handle, - uint32_t domid, - unsigned long dst_pfn) -{ - void *vaddr = xc_map_foreign_range( - xc_handle, domid, PAGE_SIZE, PROT_WRITE, dst_pfn); - if ( vaddr == NULL ) - return -1; - memset(vaddr, 0, PAGE_SIZE); - munmap(vaddr, PAGE_SIZE); - return 0; -} - unsigned long xc_get_filesz(int fd) { uint16_t sig; diff --git a/tools/libxc/xc_vmx_build.c b/tools/libxc/xc_vmx_build.c index 47cc1271cb..ea83366813 100644 --- a/tools/libxc/xc_vmx_build.c +++ b/tools/libxc/xc_vmx_build.c @@ -495,9 +495,6 @@ static int setup_guest(int xc_handle, } *store_mfn = page_array[(v_end-2) >> PAGE_SHIFT]; - if ( xc_clear_domain_page(xc_handle, dom, *store_mfn) ) - goto error_out; - shared_page_frame = (v_end - PAGE_SIZE) >> PAGE_SHIFT; if ((e820_page = xc_map_foreign_range( diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h index 8afd5b01b2..66f7eff875 100644 --- a/tools/libxc/xenctrl.h +++ b/tools/libxc/xenctrl.h @@ -424,9 +424,6 @@ int xc_ia64_get_pfn_list(int xc_handle, uint32_t domid, int xc_copy_to_domain_page(int xc_handle, uint32_t domid, unsigned long dst_pfn, void *src_page); -int xc_clear_domain_page(int xc_handle, uint32_t domid, - unsigned long dst_pfn); - int xc_ia64_copy_to_domain_pages(int xc_handle, uint32_t domid, void* src_page, unsigned long dst_pfn, int nr_pages); -- 2.30.2